﻿using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.InterceptionExtension;

namespace TSharp.Core.Aop.Handler
{
	public abstract class CallHandlerBase : ICallHandler
	{
		public IUnityContainer Container { get; private set; }

		public CallHandlerBase(IUnityContainer container, int order)
		{
			this.Container = container;
			this.Order = order;
		}

		public int Order { get; set; }

		public abstract IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext);
	}
}